﻿/*
SINACOR - BMF&Bovespa
Arquivo: ParametroInformado.cs
Criado em: 31-mai-2010 09:44:16
Arquiteto Responsável: p-wgeneroso
*/
using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Common.Validation;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Validation;
using Sinacor.Infra.Service.Validation.BusinessRules;

namespace Sinacor.Servico.Bovespa.Movimento.BusinessLogic.BusinessRuleValidation 
{
	public class ParametroInformado<T> : IBusinessRuleValidation 
	{
		#region Atributos

		private int _erroObjetoNulo = 109731;
		private T _parametro;
        private List<ValidationError> _errors = new List<ValidationError>();

		#endregion

        #region Construtores

        /// <summary>
        /// Construtor Padrão
        /// </summary>
        public ParametroInformado()
        {
        }

        #endregion

		#region Propriedades

		public int ErroObjetoNulo
		{
			get { return _erroObjetoNulo; }
			set { _erroObjetoNulo = value; }
		}

		public T Parametro
		{
			get { return _parametro; }
			set { _parametro = value; }
		}

		#endregion

		#region Métodos

		public List<ValidationError> GetErrors()
		{
            return _errors;
		}

		public void Validate()
		{
            if (_parametro == null)
                _errors.Add(new ValidationError(ErroObjetoNulo));
		}

		#endregion
	}
}